/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package validators;

import java.util.Date;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

/**
 *
 * @author Pablo
 */
@FacesValidator (value="dateBiValidator")
public class dateBiValidator implements Validator{

    @Override
    public void validate(FacesContext context, UIComponent component, Object value)
            throws ValidatorException {
        Date attribute = (Date) component.getAttributes().get("fecha_ini");
        if ((value == null && attribute != null) || (value != null && attribute == null)){
            FacesMessage message = new FacesMessage();
            message.setSummary("No se puede especificar sólo una fecha");
            message.setSeverity(FacesMessage.SEVERITY_ERROR);
            throw new ValidatorException(message);
        }
        if ((value != null && attribute != null) && ((attribute).after((Date)value))){
            FacesMessage message = new FacesMessage();
            message.setSummary("La fecha inicial debe ser anterior a la fecha final");
            message.setSeverity(FacesMessage.SEVERITY_ERROR);
            throw new ValidatorException(message);
        }
    }
}
